#include <common.h>
#include <print.h>
#include <irq.h>
#include <8259A.h>


void Int0x20Handle(void)
{
    static U32 count;
    SetCursorPos(0, 3);
    printk("TimerHandle: %d", count++);
    write_m_EOI();                          // 手动结束主片中断
    // asm volatile("leave;iret");             // 中断返回
}

S32 main(void)
{
    asm volatile("cli");                    // 关中断
    SetCursorPos(0, 2);                     // 设置光标位置: (0, 2)
    SetFontColor(E_FONT_WHITE);             // 设置打印字体颜色: 白色
    printk("Start kernel...\n");            // 打印字符串 "Start kernel..."
    IrqInit();                              // 中断请求初始化，绑定默认中断服务程序
    pic_init();                             // 初始化可编程中断控制器 8259A - 级联
    // IrqRegister(IRQ32, TimerHandle);        // 注册 0x20 号中断（时钟中断）

    asm volatile("sti");                    // 开中断

    while(1);
    return 0;
}